#pragma once
#include <vector>
#include <iostream>
#include <string>

#include "Meeting.h"

using namespace std;

class Day{
public:
	Day(void);
	~Day(void);
	Day(const Day& day);
	const Day& operator =(const Day &day);

	// add a meeting to the day
	virtual bool addMeeting(Meeting &meeting);

	// remove the meeting that starts at 'startTime' from the day
	virtual bool removeMeeting(Meeting & meeting);

	// return meeting by the given time
	virtual Meeting* getMeeting(float startTime) const;

	int numOfMeetings() const;

	const vector<Meeting *>  & getMeetingList() const;

	// remove all meetings from the day
	void cleanDay();

	ostream & Day::toString(ostream & os) const;
	
private:
	void clearList();
	bool inline handleArray();

	vector<Meeting *> mList;
};
